import request from "@/request";

// 参数接口
export interface UpdateRmParams {
    id?: number;
    roleId?: number;
    roleName?: string;
    menuId?: number;
    menuName?: string;
    createBy?: string;
    createTime?: string;
    updateBy?: string;
    updateTime?: string;
    undock?: number;
    unlucky?: number;
    remark?: string;
}

// 响应接口
export interface UpdateRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 修改编号
 * @param {object} params $!{table.comment}
 * @param {number} params.id 编号
 * @param {number} params.roleId 角色编号
 * @param {string} params.roleName 角色名称
 * @param {number} params.menuId 菜单编号
 * @param {string} params.menuName 菜单名称
 * @param {string} params.createBy 创建者
 * @param {string} params.createTime 创建时间
 * @param {string} params.updateBy 更新者
 * @param {string} params.updateTime 更新时间
 * @param {number} params.undock 伪删除（0-已 1-未）
 * @param {number} params.unlucky 状态（0-禁用 1-正常）
 * @param {string} params.remark 备注
 * @returns
 */
export function updateRm(params: UpdateRmParams): Promise<UpdateRmRes> {
    return request.post(`/rmEntity/update`, params);
}

// 响应接口
export interface RecoverListRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 恢复列表
 * @returns
 */
export function recoverListRm(): Promise<RecoverListRmRes> {
    return request.post(`/rmEntity/recoverList`);
}

// 响应接口
export interface RecoverRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 恢复数据
 * @param {string} param
 * @returns
 */
export function recoverRm(param: string): Promise<RecoverRmRes> {
    return request.post(`/rmEntity/recover/${param}`);
}

// 响应接口
export interface ListPageRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 列表分页
 * @param {string} page
 * @param {string} pageSize
 * @returns
 */
export function listPageRm(page: number, pageSize: number): Promise<ListPageRmRes> {
    return request.post(`/rmEntity/listPageRm?page=${page}&pageSize=${pageSize}`);
}

// 参数接口
export interface InsertRmParams {
    id?: number;
    roleId?: number;
    roleName?: string;
    menuId?: number;
    menuName?: string;
    createBy?: string;
    createTime?: string;
    updateBy?: string;
    updateTime?: string;
    undock?: number;
    unlucky?: number;
    remark?: string;
}

// 响应接口
export interface InsertRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 保存数据
 * @param {object} params $!{table.comment}
 * @param {number} params.id 编号
 * @param {number} params.roleId 角色编号
 * @param {string} params.roleName 角色名称
 * @param {number} params.menuId 菜单编号
 * @param {string} params.menuName 菜单名称
 * @param {string} params.createBy 创建者
 * @param {string} params.createTime 创建时间
 * @param {string} params.updateBy 更新者
 * @param {string} params.updateTime 更新时间
 * @param {number} params.undock 伪删除（0-已 1-未）
 * @param {number} params.unlucky 状态（0-禁用 1-正常）
 * @param {string} params.remark 备注
 * @returns
 */
export function insertRm(params: InsertRmParams): Promise<InsertRmRes> {
    return request.post(`/rmEntity/insert`, params);
}

// 响应接口
export interface ImportExcelRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 导入数据
 * @param {string} file
 * @returns
 */
export function importExcelRm(file: object): Promise<ImportExcelRmRes> {
    return request.post(`/rmEntity/importExcel?file=${file}`);
}

// 参数接口
export interface FindRmParams {
    id?: number;
    roleId?: number;
    roleName?: string;
    menuId?: number;
    menuName?: string;
    createBy?: string;
    createTime?: string;
    updateBy?: string;
    updateTime?: string;
    undock?: number;
    unlucky?: number;
    remark?: string;
}

// 响应接口
export interface FindRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 条件查询
 * @param {object} params $!{table.comment}
 * @param {number} params.id 编号
 * @param {number} params.roleId 角色编号
 * @param {string} params.roleName 角色名称
 * @param {number} params.menuId 菜单编号
 * @param {string} params.menuName 菜单名称
 * @param {string} params.createBy 创建者
 * @param {string} params.createTime 创建时间
 * @param {string} params.updateBy 更新者
 * @param {string} params.updateTime 更新时间
 * @param {number} params.undock 伪删除（0-已 1-未）
 * @param {number} params.unlucky 状态（0-禁用 1-正常）
 * @param {string} params.remark 备注
 * @returns
 */
export function findRm(params: FindRmParams): Promise<FindRmRes> {
    return request.post(`/rmEntity/findRm`, params);
}

// 响应接口
export interface FindByNameRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 查询名称
 * @param {string} param
 * @returns
 */
export function findByNameRm(param: string): Promise<FindByNameRmRes> {
    return request.post(`/rmEntity/findByNameRm/${param}`);
}

// 响应接口
export interface ExportExcelRmRes {}

/**
 * 导出数据
 * @returns
 */
export function exportExcelRm(): Promise<ExportExcelRmRes> {
    return request.post(`/rmEntity/exportExcel`);
}

// 响应接口
export interface DeleteTempRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 暂时删除
 * @param {string} param
 * @returns
 */
export function deleteTempRm(param: string): Promise<DeleteTempRmRes> {
    return request.post(`/rmEntity/deleteTemp/${param}`);
}

// 响应接口
export interface DeleteRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 永久删除
 * @param {string} param
 * @returns
 */
export function deleteRm(param: string): Promise<DeleteRmRes> {
    return request.post(`/rmEntity/delete/${param}`);
}


// 响应接口
export interface FindByIDRmRes {
    message: string;
    success: boolean;
    code: number;
    data: Record<string, unknown>;
}

/**
 * 查询编号
 * @param {string} param
 * @returns
 */
export function findByIDRm(param: string): Promise<FindByIDRmRes> {
    return request.post(`/rmEntity/findByIDRm/${param}`);
}


